<?php
/*session_start();
if(!isset($_SESSION['_user'])){
    header('Location: /ossim/session/login.php');
    exit;
}
*/
/**
 * 通用化API接口数据输出
 * @param  int $status 业务状态码
 * @param  string $message 信息提示
 * @param  [] $data 数据
 * @param  int $httpCode http状态码
 * @return []
 */
function show($status='', $message='', $data = [])
{
    $result = [
        'status'  => $status,
        'message' => $message,
        'data'    => $data,
    ];
    return json_encode($result);
}

//字符串转换成16进制
function str2hex($str){
$hex = '';
for($i=0,$length=mb_strlen($str); $i<$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16进制转换成字符串
function hex2str($hex){
$str = '';
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}

//非空
function check_required($field) {
    if (isset($field) && ($field === false || $field === 0 || $field === 0.0 || $field === '0' || !empty($field) || is_array($field))) {
        return true;
    } else {
        return false;
    }
}

/* 将一个字符串转变成键值对数组
 * @param    : string str 要处理的字符串 $str ='TranAbbr=IPER|AcqSsn=000000073601|MercDtTm=20090615144037';
 * @param    : string sp 键值对分隔符
 * @param    : string kv 键值分隔符
 * @return    : array*/
function str2arr($str,$sp="|",$kv="=")
{
    $arr = str_replace(array($kv,$sp),array('"=>"','","'),'array("'.$str.'")');
    eval("\$arr"." = $arr;");   // 把字符串作为PHP代码执行
    return $arr;
}

//递归
function formatTree($array,$class = 0){
        $arr=array();
        $tem=array();
        foreach($array as $v){
            if($v['class'] == $class){
                $tem = formatTree($array,$v['id']);
                //判断当前数组是否存在子数组
                $tem && $v['son'] = $tem;
                $arr[]=$v;
            }
        }
        return $arr;
}

/** 二进制流生成文件
* $_POST 无法解释二进制流，需要用到 $GLOBALS['HTTP_RAW_POST_DATA'] 或 php://input
* $GLOBALS['HTTP_RAW_POST_DATA'] 和 php://input 都不能用于 enctype=multipart/form-data
* @param    String  $file   要生成的文件路径
* @return   boolean
*/
function binary_to_file($file){
    $content = $GLOBALS['HTTP_RAW_POST_DATA'];  // 需要php.ini设置
    if(empty($content)){
        $content = file_get_contents('php://input');    // 不需要php.ini设置，内存压力小
    }
    $ret = file_put_contents($file, $content, true);
    return $ret;
}